/**
 * 
 */
package NoteBook;

/**
 *     String四种构造方法
 * 1.public String();  创建空字符串对象
 * 2.public String (char [] chs);  根据字符数组内容，创建字符串对象（''单字符）
 * 3.public String (byte [] bys);  根据字节数组内容，创建字符串对象（整数->字符）97-a   
 * 4.String s="abc";   直接赋值创建字符串对象
 * 
 *     StringBuilder 的构造方法
 * 1.public StringBuilder(); 创建空白字符串对象，不含任何内容
 * 2.public StringBuilder(String str); 根据字符串内容，创建可变字符串对象
 *
 *
 *区别：
 *    String: 内容不可变
 *    StringBuilder:  内容可变  在原基础上变化
 *  
 *   String 与 StringBuilder 的相互转化
 *  1、StringBuilder转化成String  toString()
 *  2、String转化成StringBuilder  构造方法
 *  
 * @author Jiang Zhiyan
 *
 * 2021年5月18日 下午9:47:08
 */
public class _07String与StringBuilder {
   public static void main(String[] args) {
	String s= new String();  //创建空白字符串
	StringBuilder sb = new StringBuilder(); //创建空白字符串
	
	/**
	 * StringBuilder的添加与反转方法
	 * public StringBuilder append(任意类型)  添加数据， 返回对象本身
	 * public StringBuilder reverse()  返回相反的字符序列
	 * 
	 * public StringBuilder delete(int i,int j);  删除其中索引值从i到j的值
	 * 
	 */
	
	StringBuilder sb1 = new StringBuilder();
	StringBuilder sb2 = sb1.append("hello");
	
	System.out.println("sb1:"+sb1);     //sb1:hello
	System.out.println("sb2:"+sb2);		//sb2:hello
	System.out.println(sb1==sb2);  // true  添加数据，返回对象本身 
	

	sb1.append(" world ");
	sb1.append("java");
    System.out.println(sb1);   //  hello world java
    //此处的sb1在原来基础上添加了两次字符串，其数据增加，但对象依旧不变
    
//    清空字符串
    sb1.delete(0, sb1.length());   // 啥也没有
 /**   
  *    链式编程
  */
    sb1.append("我").append("ai").append("这").append(" 世界！"); 
    System.out.println(sb1); //我ai这 世界！
    
    sb1.reverse();
    System.out.println(sb1);   //！界世 这ia我
    
//  两者相互转化
//    1、StringBuilder转化成String  toString()
    StringBuilder sb3= new StringBuilder();
    sb3.append("相互转化时：jzy");
    String s3=sb3.toString();
    System.out.println(s3);  //相互转化时：jzy
    
//    2、String转化成StringBuilder  构造方法
    String s4="I'm fine.";
    StringBuilder sb4=new StringBuilder (s4);
    System.out.println(sb4);   //I'm fine.
}
}
